Technical Q&A

(29-Mar-99)HW 59 - PCI ブリッジの名前が変更される理由(1999 年 3 月 29 日)


Q: PCI ブリッジの名前が「Bandit」や「Grackle」などの固有名から「pci」のようなジェネリックな名前に変更された理由を教えてください。

A: Name は PCI デバイスプロパティで、Open Firmware とそのクライアント (つまり Mac OS) に対してデバイスツリー内のノード名を知らせる役割があります。最初に Open Firmware を搭載した Macintosh (Power Macintosh 9500) が登場したとき、ジェネリックな名前という概念は、まだ Open Firmware の協定には組み込まれていませんでした。Apple では、 PCI ブリッジに「Bandit」という名前をつけていましたが、「Bandit」という名前が何を指すかは、9500 の開発に携わったエンジニアを除いては、誰もわかりません。これによって状況が混乱したため、ジェネリックな名前という概念が導入され、ホストバスと PCI バスの間にあるPCI ブリッジには「pci」というジェネリックな名前が与えられました。しかし、ここでまた 1 つジレンマが生まれます。つまり、すでに使われているデバイスをどう扱えばよいかという問題が発生したのです。ドライバが「Bandit」というノード名を探していたとしても、その名前が「pci」に変更されていては、デバイスはノードを見つけられなくなります。そこで、「Bandit」という旧名を compatible というプロパティに格納し、ジェネリックな名前は name プロパティで確保することになりました。起動 ROM コードはまず最初に name プロパティを検索するよう変更されました。ここで検索に失敗した場合は、compatible プロパティが検索されます。検索は、起動 ROM のアルゴリズムに何も変更を加えずに行う必要があります。


-- Wayne Flansburg
Worldwide Developer Technical Support

Technical Q&As | Contents
Previous Question | Next Question

To contact us, please use the Contact Us page.